package ecs.core;

import java.util.List;

public interface IEntity {

    <T extends IComponent> void add(T component);
    void remove(Class<?> type);

    <T extends IComponent> T component(Class<T> type);

     List<IComponent> components(Class<?>... types);

    List<IComponent> components();

    <T extends IComponent> boolean has(Class<T> type);

    boolean hasAll(Class<?>... types);

}
